package model;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.util.ArrayList;
import physics.Vect;


public interface IGizmo {
	
	public int getX();
	public int getY();
	public String getName();
	
	public int getTriangleRotations();
	
	public void setPosition(int x, int y);
	public Graphics paintShape(Graphics g);

	public String getType();
	public Rectangle getBounds();
	
	public Color getColor();
	public void setColor(Color col);
	
	public void rotateClockwise();
	
	public void triggerEvent();
	public void doLinkedAction();

	public void addLinkedGizmo(IGizmo giz);
	public ArrayList<IGizmo> getLinkedGizmos();

	public void addLinkedKey(int key);
	public ArrayList<Integer> getLinkedKeys();
	
	public double timeUntilCollision(Ball ball);
	public Vect reflectionVector(Ball ball);
	
}
